From: kfraser@dhcp93.uk.xensource.com Date: Fri, 30 Jun 2006 09:35:54 +0000 (+0100) Subject: [LINUX] Replace pagetable walks by simple address calculation. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15912^2~16 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=0968f0be1f81bd75a465be5c9e7dc4469ce90d95;p=xen.git [LINUX] Replace pagetable walks by simple address calculation. Signed-off-by: Jan Beulich --- diff --git a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c index 2d927cc154..b153de617e 100644 --- a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c +++ b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c @@ -271,10 +271,6 @@ static unsigned long discontig_frames[1<> PAGE_SHIFT) + i); if (HYPERVISOR_update_va_mapping(vstart + (i*PAGE_SIZE), __pte_ma(0), 0)) BUG(); @@ -372,10 +364,6 @@ int xen_create_contiguous_region( void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order) { - pgd_t *pgd; - pud_t *pud; - pmd_t *pmd; - pte_t *pte; unsigned long *out_frames = discontig_frames, in_frame; unsigned long frame, i, flags; long rc; @@ -410,11 +398,7 @@ void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order) contiguous_bitmap_clear(__pa(vstart) >> PAGE_SHIFT, 1UL << order); /* 1. Find start MFN of contiguous extent. */ - pgd = pgd_offset_k(vstart); - pud = pud_offset(pgd, vstart); - pmd = pmd_offset(pud, vstart); - pte = pte_offset_kernel(pmd, vstart); - in_frame = pte_mfn(*pte); + in_frame = pfn_to_mfn(__pa(vstart) >> PAGE_SHIFT); /* 2. Zap current PTEs. */ for (i = 0; i < (1UL<